#ifndef CALCPROVIDER_H
#define CALCPROVIDER_H

#include <future>
#include "MU_ExpMessage.h"
#include "base/data_types.h"
#include "src/define/func_define.h"
#include "src/define/data_define.h"
#include "src/SoftWare/DateTime/DateTime.h"
#include "src/pubimp.h"
#include <QMessageBox>


typedef std::tuple<int ,YZ,std::string,UV,RobotPos> ResultImg;  // 图像序号，Y移动值，Z移动值，线形，uv，（x,y,z）

typedef std::pair<std::string,std::string>  GenResult;      // 获取图像计算后的结果，1-线型  2-结果及描述

class CalcProvider
{
public:
    CalcProvider();
    static CalcProvider* GetInstance(){
        static QMutex mutex;
        static QScopedPointer<CalcProvider> inst;
        if (Q_UNLIKELY(!inst)) {
            mutex.lock();
            if (!inst) {
                inst.reset(new CalcProvider);
            }
            mutex.unlock();
        }
        return inst.data();
    }





    void Calc();

    static
    GenResult inputADir(std::string dirname);       // 从一个文件夹里，获取图像分类的结果
};

#endif // CALCPROVIDER_H
